home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-04
/
ddj0492.zip
/
DFLT11.ZIP
/
EMM.C
< prev
next >
Wrap
Text File
|
1992-02-03
|
1KB
|
58 lines
/* ------------- emm.c --------------- */
/*
* LIM Expanded Memory Manager Driver Functions
* This is the resident EMM code.
*/
#include "tsr.h"
/* ---- map EMM pages to addressable pages in memory ----- */
int emm_map(int pagect, int first_pageno,
int first_logical_page, int handle)
{
while (pagect--) {
_AL = first_pageno++;
_AH = MAPEMM;
_BX = first_logical_page++;
_DX = handle;
if (emmint() == -1)
return -1;
}
return 0;
}
/* ----- release the pages allocated to a handle ------ */
int emm_release(int handle)
{
_AH = RELEASEEMM;
_DX = handle;
return emmint();
}
/* ---- save the current mapping context ----- */
int emm_savecontext(int handle)
{
_AH = SAVE;
_DX = handle;
return emmint();
}
/* ----- restore a saved mapping context ------- */
int emm_restorecontext(int handle)
{
_AH = RESTOREEMM;
_DX = handle;
return emmint();
}
/* ------ general EMM interrupt caller --------- */
int emmint(void)
{
geninterrupt(EMM);
if (_AH != 0)
return -1;
return 0;
}